Auto merge of #2048 - alexcrichton:build-script-fresh, r=brson
authorbors <bors@rust-lang.org>
Sat, 10 Oct 2015 00:55:14 +0000 (00:55 +0000)
committerbors <bors@rust-lang.org>
Sat, 10 Oct 2015 00:55:14 +0000 (00:55 +0000)
commitec85eefd3230a179e023b1f0b9377a43a0694023
tree8b8cebdb4e6a218acfa29543d6878ecfd30ef627
parent726e0f8953b89b634fc99f1172560f52e15911b6
parentef3215ab0b8a4388d39b303a2502d78fd8da79ae
Auto merge of #2048 - alexcrichton:build-script-fresh, r=brson

This commit causes a recompile to be triggered if the overridden version of a
build script changed since it was last run. Previously this wasn't tracked very
well due to fingerprints not accounting for the right data.

There are a few architectural changes here which were made to prepare for this:

* The unit of work for "running a build script" is now emitted as dependency
  regardless of whether a build script is overridden or not. Previously it was
  omitted if overridden.
* This unit of work has 0 dependencies if it is overridden (as we know the
  output) and otherwise has the normal set of dependencies.
* The fingerprint calculation was updated to recognize when a build script
  execution is overridden and instead consider the overridden value as input to
  the fingerprint. This means that if the overridden values change they will
  trigger a recompile.
* The "prepare a build script to run" step now emits a noop if the execution of
  the build script is overridden.

After putting all that together, this commit ...

Closes #2042